package com.zach.common.dao;

import java.util.List;

import com.zach.common.entity.UserFunctionTree;
/**
 * 用户功能树相关Dao
 * @author Administrator
 *
 */
public interface UserFunctionTreeDao extends Dao {
	/**
	 * 新增一个节点，增加之前请确认id已经生成或者赋予
	 * @param tree
	 */
	public void addNode(UserFunctionTree tree);
	/**
	 * 通过节点id删除相应的节点。
	 * @param nodeId
	 */
	public void delNode(String nodeId);
	//public void delNodes(String nodeIds);
	/**
	 * 根据唯一id进行更新
	 * @param tree
	 */
	public void updateNode(UserFunctionTree tree);
	/**
	 * 根据唯一id进行更新节点附加信息
	 * @param tree
	 */
	public void updateNodeExt(UserFunctionTree tree);
	
	public UserFunctionTree getNode(String nodeId);
	
	public List<UserFunctionTree> getTreeList(UserFunctionTree tree);
	/**
	 * 通过用户来查询用户所拥有功能树列表
	 * @param loginName 用户登录名
	 * @return
	 */
	public List<UserFunctionTree> getTreeListByUserId(String loginName);
	/**
	 * 通过角色代码来查询功能树列表
	 * @param roleId
	 * @return
	 */
	public List<UserFunctionTree> getTreeListByRole(String roleId);
	/**
	 * 通过功能树父节点id来获取其所有子节点
	 * @param parentId
	 * @return
	 */
	public List<UserFunctionTree> getTreeListByParentId(String parentId);
	/**
	 * 通过传入的父节点id，和其它参数进行查询，userId,roleId分别是相应的用户和角色编号
	 * @param tree
	 * @return
	 */
	public List<UserFunctionTree> getTreeListByParentIdAndOther(UserFunctionTree tree);
}
